package com.lh.jianzhioffer.专项练习.链表;

import java.util.ArrayList;
import java.util.List;

/**
 * @author: linghao
 * @since: 2023/3/11
 *
 * 给定一个链表的 头节点 head ，请判断其是否为回文链表。
 * 如果一个链表是回文，那么链表节点序列从前往后看和从后往前看是相同的
 */
public class 回文链表027 {
    public boolean isPalindrome(ListNode head) {
        List<ListNode> list = new ArrayList<>();
        while (head != null){
            list.add(head);
            head = head.next;
        }
        if(list.size() ==0 || list.size() ==1)return true;
        int n = list.size();
        for(int i=0;i<n/2;i++){
            if(list.get(i).val != list.get(n-i-1).val){
                return false;
            }
        }
        return true;
    }

    public class ListNode {
      int val;
      ListNode next;
      ListNode() {}
      ListNode(int val) { this.val = val; }
      ListNode(int val, ListNode next) { this.val = val; this.next = next; }
  }
}
